<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>20-父子组件之间的方法调用</title>
    <script src="../js/vue.js"></script>
</head>
<body>
<!--准备一个div容器-->
<div id="app">
    <button @click="fuMethod1()">点我调用父组件方法1</button>
    <button @click="fuMethod2()">点我调用父组件方法2</button>
    <hr>
    <vm1 ref="my"></vm1>
</div>
<template id="temp">
    <div>
        <button @click="ziMethod1()">点我调用子组件方法1</button>
        <button @click="ziMethod2()">点我调用子组件方法2</button>
    </div>
</template>
<script>
    const vmComponent = Vue.extend({
        template: "#temp",
        data() {
            return {}
        },
        methods: {
            ziMethod1: function () {
                alert("我是子组件方法1");
            },
            ziMethod2: function () {
                alert("我是子组件方法2");
            }
        }
    });

    Vue.component("vm1", vmComponent);


    <!--准备一个Vue对象和容器绑定-->
    const vm = new Vue({
        // 绑定容器
        el: "#app",
        // 数据
        data: {},
        // 方法
        methods: {
            fuMethod1: function () {
                alert("父组件准备调用子组件方法");
                let $refs = this.$refs["my"];
                $refs.ziMethod1()
            },
            fuMethod2: function () {
                alert("父组件方法2调用")
            }
        },
        // 局部过滤器
        filters: {},
        // 监听器
        watch: {},
    });
</script>
</body>
</html>